const express = require('express')
const ejs = require('ejs');
const path = require('path');
// 实例化express
const app = express();

// 1. ---------------------------------------
// 解析json格式的参数
app.use(express.json())
// 解析form表单格式的参数
app.use(express.urlencoded({
  extended: false // querystring这个方法解析参数
  // 如果为true，就是用qs这个包解析参数
}))

// 4. ----------------------------------------
// 加载ejs模版引擎
// 设置访问文件的路径
app.set('views', path.join(__dirname, 'views'))
// 设置当前文件类型
app.set('view engine', 'html')
// 设置引擎
app.engine('html', ejs.renderFile)

// 2. -----------------------------------------
// 内置的一个静态资源中间件 ，它的参数是静态资源的路径
// console.log(__dirname + '/public', '----')
app.use(express.static(__dirname + '/public'))

// 3. -----------------------------------------
// 写接口  第二个往后的参数叫做中间件（也就是一种函数）
app.get('/', (req, res, next) => {
  const { url, method, query } = req;
  // 返回给前端的东西  views路径已经帮助拼接成功了，所以咱们只需要写文件名字就可以了
  res.render('index.html', {
    title: '少年不知愁滋味',
    data: [
      {
        city: "上海",
        code: 0000
      },
      {
        city: "北京",
        code: 1111
      }
    ]
  })
})

app.post('/api/login', (req, res, next) => {
  // 在post接口中 获取参数 req.body
  // post参数必须通过中间件的解析
  const { body, method } = req;
  res.send({
    code: 0,
    msg: 'success',
    data: {
      body,
      method
    }
  })
})

app.listen(8000, () => {
  console.log(`server port is 8000`)
})